package com.wgchao.amc.mapstruct.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;

import com.wgchao.amc.common.validate.Save;
import com.wgchao.amc.common.validate.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @作者  wgchao
 * @时间 2019-10-30 
 * @用途  
 */

@AllArgsConstructor
@NoArgsConstructor
@Data
@JsonInclude(content = JsonInclude.Include.NON_NULL)
@ApiModel(value="SysBaseAgencyDTO",description="机构信息")
public class SysBaseAgencyDTO  implements Serializable {

	private static final long serialVersionUID =  4586221021990608078L;

	/**
	 * 机构编号
	 */
	@NotNull(message = "机构编号缺失", groups = {Update.class})
	@ApiModelProperty(value="机构编号",name="agencyCode")
	private String agencyCode;

	/**
	 * 机构名称
	 */
	@NotNull(message = "机构名称缺失", groups = {Save.class, Update.class})
	@ApiModelProperty(value="机构名称",name="agencyName")
	private String agencyName;

	/**
	 * 机构地址
	 */
	@ApiModelProperty(value="机构地址",name="agencyAddr")
	private String agencyAddr;

	/**
	 * 备注
	 */
	@ApiModelProperty(value="备注",name="remark")
	private String remark;

	/**
	 * 创建时间
	 */
	@NotNull(message = "创建时间缺失", groups = {Update.class})
	@ApiModelProperty(value="创建时间",name="createTime")
	private Date createTime;

	/**
	 * 创建人
	 */
	@ApiModelProperty(value="创建人",name="createUser")
	private Long createUser;

	/**
	 * 最近更新时间
	 */
	@ApiModelProperty(value="最近更新时间",name="lastUpdateTime")
	private Date lastUpdateTime;

	/**
	 * 最近更新人
	 */
	@ApiModelProperty(value="最近更新人",name="lastUpdateUser")
	private Long lastUpdateUser;

	/**
	 * 注销标志
	 */
	@ApiModelProperty(value="注销标志",name="cancel")
	private Boolean cancel;

	/**
	 * 删除标志
	 */
	@ApiModelProperty(value="删除标志",name="del")
	private Boolean del;

	/**
	 * 删除时间
	 */
	@ApiModelProperty(value="删除时间",name="delTime")
	private Date delTime;

	/**
	 * 删除人
	 */
	@ApiModelProperty(value="删除人",name="delUser")
	private Long delUser;

	/**
	 * 父机构编号
	 */
	@NotNull(message = "父机构编号缺失", groups = {Save.class, Update.class})
	@ApiModelProperty(value="父机构编号",name="parCode")
	private String parCode;

	@ApiModelProperty(value="子机构列表",name="childs")
	private List<SysBaseAgencyDTO> childs;

	@ApiModelProperty(value="创建人信息",name="createUserInfo")
	private SysBaseUserDTO createUserInfo;
	@ApiModelProperty(value="最近更新人信息",name="lastUpdateUserInfo")
	private SysBaseUserDTO lastUpdateUserInfo;
	@ApiModelProperty(value="删除人信息",name="delUserInfo")
	private SysBaseUserDTO delUserInfo;
	@ApiModelProperty(value="父机构信息",name="parAgencyInfo")
	private SysBaseAgencyDTO parAgencyInfo;

}
